package com.ztstudy.poi.controller;

import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.data.Numberings;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class liebiaoTableController {
    public static void main(String[] args) {
        // 加载模板文件
        try (FileInputStream in = new FileInputStream("D:/Graduation_Word/poi_study/poi/src/main/resources/template1.docx");
             FileOutputStream out = new FileOutputStream("D:/Graduation_Word/poi_study/poi/src/main/resources/liebiao.docx")) {

            // 创建模板对象
            XWPFTemplate template = XWPFTemplate.compile(in)
                    .render(createData());

            // 输出到文件
            template.write(out);
            System.out.println("列表生成成功！");
            template.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 创建列表数据
    private static Object createData() {
        HashMap<String, Object> data = new HashMap<>();

        // 创建 sections 列表
        List<HashMap<String, Object>> as = new ArrayList<>();
        for (int i = 1; i <= 5; i++) {
            HashMap<String, Object> section = new HashMap<>();
            section.put("title", "这是 " + i+ " 级指标");
            section.put("content", "This is the content for section " + i);
            as.add(section);
        }

        data.put("sections", as); // 添加 sections 数据

        /*
        * 这里模板中，使用 一个{?sections}  {{/sections}}区块对 来引用列表数据，
        * 可以一次循环，也可以嵌套循环。
        * */
        return data;
    }
}
